home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #2 / Ham Radio 2000 - Volume 2.iso / HAMV2 / MISC / HCAL-27 / DECIFRAC.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1996-11-16  |  4.0 KB  |  155 lines

  1. 10  'DECIFRAC - Decimal feet/inches to fractions  08 JAN 94 rev. 16 NOV 96
  2. 20  IF EX$=""THEN EX$="EXIT"
  3. 30  CLS:KEY OFF
  4. 40  COLOR 7,0,5
  5. 50  UL$=STRING$(80,205)
  6. 60  '
  7. 70  '....start
  8. 80  CLS
  9. 90  COLOR 15,1
  10. 100  PRINT " DECIMAL / FRACTION CONVERTER";TAB(61);"by George C. Murphy ";
  11. 110  COLOR 5,0:PRINT STRING$(80,223);
  12. 120  COLOR 7,0
  13. 130  D=0:E=0:F=0:I=0:N=0       'set variables to zero
  14. 140  D$="":E$="":F$="":I$="":  'set variables to zero
  15. 150  PRINT " Press number in < > to convert INCHES/FEET/METRES from:"
  16. 160  PRINT UL$;
  17. 170  PRINT "  < 1 >  FRACTION to DECIMAL"
  18. 180  PRINT "  < 2 >  DECIMAL to FRACTION"
  19. 190  PRINT UL$;
  20. 200  PRINT "    or Press < 0 > to EXIT....."
  21. 210  Z$=INKEY$:IF Z$=""THEN 210
  22. 220  IF Z$="0"THEN RUN EX$
  23. 230  IF Z$="1"THEN 270
  24. 240  IF Z$="2"THEN 810
  25. 250  GOTO 210
  26. 260  '
  27. 270  '.....fraction to decimal
  28. 280  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  29. 290  PRINT " FRACTION to DECIMAL"
  30. 300  PRINT UL$;
  31. 310  LOCATE 7
  32. 320  INPUT " ENTER: number of whole feet................................";F$
  33. 330  IF VAL(F$)<>INT(VAL(F$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 310
  34. 340  IF F$=""THEN F$="0"
  35. 350  LG=LEN(F$)
  36. 360  Q$=F$+"'- ":F=VAL(F$)
  37. 370  LOCATE 5,2:PRINT Q$
  38. 380  LOCATE 8
  39. 390  INPUT " ENTER: number of whole inches..............................";I$
  40. 400  IF VAL(I$)<>INT(VAL(I$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 380
  41. 410  IF I$=""THEN I$="0"
  42. 420  Q$=Q$+I$:I=VAL(I$)
  43. 430  LOCATE 5,2:PRINT Q$
  44. 440  LOCATE 9
  45. 450  INPUT " ENTER: fraction enumerator (top number of fraction)........";E$
  46. 460  IF VAL(E$)<>INT(VAL(E$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 440
  47. 470  IF VAL(E$)=0 THEN E=0:GOTO 490
  48. 480  Q$=Q$+" "+E$+"/":E=VAL(E$)
  49. 490  LOCATE 5,2:PRINT Q$
  50. 500  LOCATE 10
  51. 510  IF E=0 THEN 540
  52. 520  INPUT " ENTER: fraction denominator (bottom number of fraction)....";D$
  53. 530  IF VAL(D$)<>INT(VAL(D$))THEN LOCATE CSRLIN-1:PRINT STRING$(79,32):GOTO 500
  54. 540  Q$=Q$+D$+CHR$(34):D=VAL(D$)
  55. 550  LOCATE 5,2:PRINT Q$
  56. 560  VIEW PRINT 6 TO 24:CLS:VIEW PRINT:LOCATE 6
  57. 570  IF E=0 AND D=0 THEN IN=F*12+I:GOTO 590
  58. 580  IN=F*12+I+E/D
  59. 590  FT=IN/12
  60. 600  MR=IN*0.0254
  61. 610  U$=STRING$(LG+2,"#")+".###"
  62. 620  PRINT " = ";USING U$;FT;:PRINT " feet"
  63. 630  PRINT " = ";USING U$;IN;:PRINT " inches"
  64. 640  PRINT " = ";USING U$;MR;:PRINT " metres"
  65. 650  PRINT
  66. 660  PRINT " ( dimensions shown are rounded off to the nearest .001 )"
  67. 670  PRINT UL$;
  68. 680  PRINT " Do you want a hard copy printout?  (y/n)"
  69. 690  Z$=INKEY$
  70. 700  IF Z$="n"THEN 790
  71. 710  IF Z$="y"THEN 730
  72. 720  GOTO 690
  73. 730  LN=CSRLIN-1:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
  74. 740  LPRINT TAB(2)Q$;
  75. 750  LPRINT TAB(20)USING U$;FT;:LPRINT " feet"
  76. 760  LPRINT TAB(20)USING U$;IN;:LPRINT " inches"
  77. 770  LPRINT TAB(20)USING U$;MR;:LPRINT " metres"
  78. 780  LPRINT
  79. 790  GOTO 1520
  80. 800  '
  81. 810  '.....decimal to fraction
  82. 820  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  83. 830  PRINT " Press number in < > to select unit of measurement of ";
  84. 840  PRINT "number to be converted:"
  85. 850  PRINT UL$;
  86. 860  PRINT "  < 1 >  Decimal INCHES"
  87. 870  PRINT "  < 2 >  Decimal FEET"
  88. 880  PRINT "  < 3 >  Decimal MILLIMETRES"
  89. 890  PRINT "  < 4 >  Decimal CENTIMETRES"
  90. 900  PRINT "  < 5 >  Decimal METRES"
  91. 910  PRINT UL$;
  92. 920  Z$=INKEY$:IF Z$=""THEN 920
  93. 930  IF Z$="1"THEN M$="inches":GOTO 1000
  94. 940  IF Z$="2"THEN M$="feet":GOTO 1000
  95. 950  IF Z$="3"THEN M$="mm":GOTO 1000
  96. 960  IF Z$="4"THEN M$="cm":GOTO 1000
  97. 970  IF Z$="5"THEN M$="metres":GOTO 1000
  98. 980  GOTO 920
  99. 990  '
  100. 1000  VIEW PRINT 3 TO 24:CLS:VIEW PRINT:LOCATE 3
  101. 1010  PRINT " DECIMAL to FRACTION"
  102. 1020  PRINT UL$;
  103. 1030  PRINT" ENTER: dimension (in decimal ";M$;") to be converted........";
  104. 1040  INPUT N
  105. 1050  I=N                                'inches
  106. 1060  IF M$="feet"THEN I=I*12            'feet
  107. 1070  IF M$="mm"THEN I=I/25.4            'millimetres
  108. 1080  IF M$="cm"THEN I=I*10/25.4         'centimetres
  109. 1090  IF M$="metres"THEN I=I*1000/25.4   'metres
  110. 1100  VIEW PRINT 5 TO 24:CLS:VIEW PRINT:LOCATE 5
  111. 1110  PRINT N;M$;" ="
  112. 1120  FT=0               'set feet to 0
  113. 1130  IF I>12 THEN FT=INT(I/12):I=I-FT*12
  114. 1140  IN=INT(I)          'whole inches
  115. 1150  FR=I-IN            'decimal part of inch
  116. 1160  '.....calculate fraction
  117. 1170  D=64               'denominator
  118. 1180  E=FR*D             'enumerator
  119. 1190  IF E=0 THEN D=0:GOTO 1240
  120. 1200  E=CINT(E/2):D=D/2
  121. 1210  IF E=0 THEN D=0:GOTO 1240
  122. 1220  IF E/2=INT(E/2)THEN 1200
  123. 1230  PRINT
  124. 1240  '.....print result
  125. 1250  IF E=1 AND D=1 THEN IN=IN+1:E=0:D=0
  126. 1260  IF IN=12 THEN FT=FT+1:IN=0
  127. 1270  IN$=STR$(IN)
  128. 1280  FT$=STR$(FT)
  129. 1290  E$=STR$(E)
  130. 1300  D$=STR$(D):D$=RIGHT$(D$,LEN(D$)-1)
  131. 1310  PRINT FT$;"'-";IN$;
  132. 1320  IF E=0 THEN 1340
  133. 1330  PRINT E$;"/";D$;
  134. 1340  PRINT CHR$(34);
  135. 1350  PRINT TAB(18);"(rounded off to the nearest 1/32";CHR$(34);")"
  136. 1360  PRINT UL$;
  137. 1370  PRINT " Do you want a hard copy printout?  (y/n)"
  138. 1380  Z$=INKEY$
  139. 1390  IF Z$="n"THEN 1520
  140. 1400  IF Z$="y"THEN 1430
  141. 1410  GOTO 1380
  142. 1420  '
  143. 1430  '.....LPRINT data
  144. 1440  LN=CSRLIN-1:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
  145. 1450  LPRINT TAB(2)N;M$;" =";
  146. 1460  LPRINT TAB(20)USING "#,###";VAL(FT$);:LPRINT "'-";IN$;
  147. 1470  IF E=0 THEN 1490
  148. 1480  LPRINT E$;"/";D$;
  149. 1490  LPRINT CHR$(34)
  150. 1500  GOTO 1520
  151. 1510  '
  152. 1520  '.....end
  153. 1530  GOTO 70
  154. 1540  END
  155.